本发明公开了一种使用第三方的Javas
cript库的方法,通过对待拦截的方法即需要修改才能实现需要的方法增加处理逻辑,来达到需要的逻辑实现。基于同样地发明构思,本发明还提出一种使用第三方的Javas
cript库的装置,能够在不修改第三方的Javas
cript库的源代码的基础上使用第三方的Javas
cript库,降低维护和开发的复杂性。
1.一种使用第三方的Javas
cript库的方法,其特征在于,所述方法包括:生成缓存对象,遍历任一源类中的属性和方法,并将所述源类中的属性和方法缓存到所述缓存对象中;生成与源类相同的目标类,并将所述缓存对象中待拦截的方法重新实现逻辑并缓存到所述目标类中;所述将所述目标类中待拦截的方法重新实现逻辑的方法为:调用所述缓存对象中的待拦截的方法,为所述待拦截的方法增加处理逻辑;所述为所述待拦截的方法增加处理逻辑的方法为:调用并执行所述缓存对象中所述待拦截方法,缓存执行的结果;在所述待拦截方法前、后,或,前和后增加拦截逻辑并执行,缓存执行的结果;将所述缓存对象中其他的方法和属性缓存到所述目标类中。
2.根据权利要求1所述的方法,其特征在于,所述调用所述缓存对象中该待拦截方法为,通过call或apply方式调用所述缓存对象中待拦截方法。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述缓存对象中其他的方法和属性缓存到所述目标类中的方法为:若所述目标类中其他的方法和属性丢失,则将所述缓存对象中其他的方法缓存到所述目标类中;若所述目标类中其他的方法和属性存在未丢失的,则将所述缓存对象中其他的方法覆盖所述目标类中其他的方法。
4.一种使用第三方的Javas
cript库的装置,其特征在于,所述装置包括:生成单元、获取单元、逻辑单元和复制单元;所述生成单元,用于生成缓存对象;生成与源类相同的目标类;所述获取单元,用于遍历任一源类中的属性和方法,并将所述源类中的属性和方法缓存到所述生成单元生成的缓存对象中;所述逻辑单元,用于将所述缓存对象中待拦截的方法重新实现逻辑并缓存到所述生成单元生成的目标类中;其中,所述逻辑单元,具体用于将所述缓存对象中待拦截的方法重新实现逻辑时,调用所述缓存对象中的待拦截的方法,为所述待拦截的方法增加处理逻辑;其中,所述逻辑单元,具体用于为所述待拦截的方法增加处理逻辑时,调用并执行所述缓存对象中所述待拦截方法,缓存执行的结果;在所述待拦截方法前、后,或,前和后增加拦截逻辑并执行,缓存执行的结果;所述复制单元,用于将所述缓存对象中其他的方法和属性缓存到所述生成单元生成的目标类中。
5.根据权利要求4所述的装置,其特征在于,所述逻辑单元,用于通过call或apply方式调用所述缓存对象中待拦截方法。
6.根据权利要求4或5所述的装置,其特征在于,所述复制单元,用于若所述目标类中其他的方法和属性丢失,则将所述缓存对象中其他的方法缓存到所述目标类中;若所述目标类中其他的方法和属性存在未丢失的,则将所述缓存对象中其他的方法覆盖所述目标类中其他的方法。
技术领域本发明涉及计算机领域,特别涉及一种使用第三方的Javas
cript库的方法和装置。
背景技术随着信息技术的发展,计算机应用越来越广泛,各种应用系统相继而生,BS的WEB应用项目也越来越多,并且在用户交互的界面开发上变得越来越广泛和重要。BS结构的WEB应用在界面上主要通过Javas
cript来控制HTML标签,在Javas
cript的使用方面也从原来简单的使用到复杂的使用,主要体现在界面的美观控制、界面的交付过程,特别是在Javas
cript的AJAX技术发展下,Javas
cript技术更是必不可少的。目前BS项目中,基本上没有不使用Javas
cript技术来开发,相关的Javas
cript的三方库也越来越多,在网上搜寻可以发现:ExtJS、GoogleMap等都采用了丰富的Javas
cript。在具体的应用项目开发过程中,作为BS的WEB应用,那就需要采用大量的Javas
cript来开发项目,也会使用大量的Javas
cript三方库。但是,针对三方的Javas
cript库,提供的功能比较固定,在某些方面不是很适合具体的应用项目,总是在现有的三方库功能上缺少部分我们需要的功能。针对上面的情况,一般的处理方式是修改三方库来完成,这样带来了三方库的维护和开发的复杂性,并且需要三方库的源代码。
发明内容有鉴于此,本发明提供一种使用第三方的Javas
cript库的方法和装置。能够在不修改第三方的Javas
cript库的源代码的基础上使用第三方的Javas
cript库,降低维护和开发的复杂性。为解决上述技术问题,本发明的技术方案是这样实现的:一种使用第三方的Javas
cript库的方法,所述方法包括:生成缓存对象,遍历任一源类中的属性和方法,并将所述源类中的属性和方法缓存到所述缓存对象中;生成与源类相同的目标类,并将所述缓存对象中待拦截的方法重新实现逻辑并缓存到所述目标类中;将所述缓存对象中其他的方法和属性缓存到所述目标类中。一种使用第三方的Javas
cript库的装置,所述装置包括:生成单元、获取单元、逻辑单元和复制单元;所述生成单元,用于生成缓存对象;生成与源类相同的目标类;所述获取单元,用于遍历任一源类中的属性和方法,并将所述源类中的属性和方法缓存到所述生成单元生成的缓存对象中;所述逻辑单元,用于将所述缓存对象中待拦截的方法重新实现逻辑并缓存到所述生成单元生成的目标类中;所述复制单元,用于将所述缓存对象中其他的方法和属性缓存到所述生成单元生成的目标类中。综上所述,本发明通过对待拦截的方法即需要修改才能实现需要的方法增加处理逻辑,来达到需要的逻辑实现。能够在不修改第三方的Javas
cript库的源代码的基础上使用第三方的Javas
cript库,降低维护和开发的复杂性。
附图说明图1为本发明实施例中使用第三方的Javas
cript库的方法流程示意图;图2为本发明具体实施例中使用第三方的Javas
cript库的装置的结构示意图。
具体实施方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。本发明在使用第三方的Javas
cript库时,通过对待拦截的方法增加逻辑来使用第三方的Javas
cript库。参见图1,图1为本发明实施例中使用第三方的Javas
cript库的方法流程示意图。具体步骤为:步骤101,生成缓存对象,遍历任一源类中的属性和方法,并将源类中的属性和方法缓存到缓存对象中。第三方的Javas
cript库中至少存在一个类,本发明对任一类的处理过程均一致。本步骤中生成一个缓存对象,用于缓存任一类中所有方法和属性。步骤102,生成与源类相同的目标类,并将缓存对象中待拦截的方法重新实现逻辑并缓存到目标类中。本步骤中将不能直接用的方法进行拦截,这里待拦截方法即不能直接使用但是需要修改之后可使用的方法。这里的重新实现逻辑并不是修改源代码,而是在原先逻辑上增加新的逻辑来重新实现原方法的逻辑。步骤103,将缓存对象中其他的方法和属性缓存到目标类中。本步骤中对一些可以直接用的方法,即不进行拦截的方法,在创建目标类的时候可能丢失,因此需要将其他的即其他的方法和属性缓存到目标类中。步骤102中,将目标类中待拦截的方法重新实现逻辑的方法为:调用缓存对象中的待拦截的方法,为待拦截的方法增加处理逻辑,并缓存到所述目标类中。其中,为待拦截的方法增加处理逻辑的方法为:调用并执行缓存对象中待拦截方法,缓存执行的结果;在待拦截方法前、后,或,前和后增加拦截逻辑并执行,缓存执行的结果。在增加的逻辑中可以修改原有方法的参数和返回值,也能够修改原有方法所在对象的成员变量。调用缓存对象中待拦截方法通过call或apply方式调用。步骤103中,将缓存对象中其他的方法和属性缓存到目标类中的方法为:若目标类中其他的方法和属性丢失,则将缓存对象中其他的方法缓存到目标类中;若目标类中其他的方法和属性存在未丢失的,则将缓存对象中其他的方法覆盖目标类中其他的方法。基于上述同样的发明构思,本发明还提出一种使用第三方的Javas
cript库的装置。该装置用于能够执行Javas
cript的计算机上。参见图2,图2为本发明具体实施例中使用第三方的Javas
cript库的装置的结构示意图。该装置包括:生成单元201、获取单元202、逻辑单元203和复制单元204。生成单元201,用于生成缓存对象;生成与源类相同的目标类。获取单元202,用于遍历任一源类中的属性和方法,并将源类中的属性和方法缓存到生成单元201生成的缓存对象中。逻辑单元203,用于将缓存对象中待拦截的方法重新实现逻辑并缓存到生成单元201生成的目标类中。复制单元204,用于将缓存对象中其他的方法和属性缓存到生成单元204生成的目标类中。较佳地,逻辑单元203,用于调用缓存对象中的待拦截的方法,为待拦截的方法增加处理逻辑,并缓存到目标类中。较佳地,逻辑单元203,用于调用并执行缓存对象中待拦截方法,缓存执行的结果;在待拦截方法前、后,或,前和后增加拦截逻辑并执行,缓存执行的结果。较佳地,逻辑单元203,用于通过call或apply方式调用缓存对象中待拦截方法。较佳地,复制单元204,用于若目标类中其他的方法和属性丢失,则将缓存对象中其他的方法缓存到目标类中;若目标类中其他的方法和属性存在未丢失的,则将缓存对象中其他的方法覆盖所述目标类中其他的方法。上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。综上所述,本发明通过对待拦截的方法即需要修改才能实现需要的方法增加处理逻辑,来达到需要的逻辑实现。能够在不修改第三方的Javas
cript库的源代码的基础上使用第三方的Javas
cript库,降低维护和开发的复杂性。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。